<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>监控报告 - 运维监控工具平台</title>
    <style>
        body {
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
            line-height: 1.6;
            color: #333;
            max-width: 1200px;
            margin: 0 auto;
            padding: 20px;
            background-color: #f5f7fa;
        }
        
        .container {
            padding: 20px;
            max-width: 1200px;
            margin: 0 auto;
        }
        
        h1, h2, h3, h4 {
            color: #303133;
            margin-top: 20px;
            margin-bottom: 15px;
        }
        
        h1 {
            font-size: 1.8rem;
            border-bottom: 1px solid #ebeef5;
            padding-bottom: 10px;
        }
        
        h2 {
            font-size: 1.5rem;
        }
        
        h3 {
            font-size: 1.2rem;
            margin-top: 25px;
        }
        
        h4 {
            margin-top: 15px;
            margin-bottom: 10px;
            color: #303133;
        }
        
        .box-card {
            margin-bottom: 20px;
            background-color: white;
            border-radius: 4px;
            box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
            overflow: hidden;
        }
        
        .clearfix {
            padding: 15px 20px;
            border-bottom: 1px solid #ebeef5;
            font-weight: 500;
        }
        
        .clearfix span {
            font-size: 16px;
            color: #303133;
        }
        
        .jvm-card {
            margin-bottom: 30px;
        }

        .system-card {
            margin-bottom: 30px;
        }
        
        .middleware-card {
            margin-bottom: 20px;
        }
        
        .network-card {
            height: 100%;
        }
        
        .tag {
            display: inline-block;
            padding: 2px 8px;
            border-radius: 4px;
            font-size: 12px;
            line-height: 1.4;
            margin-right: 5px;
            margin-bottom: 5px;
        }
        
        .tag-NORMAL, .tag-success {
            background-color: #f0f9eb;
            color: #67c23a;
            border: 1px solid #c2e7b0;
        }
        
        .tag-WARNING, .tag-warning {
            background-color: #fdf6ec;
            color: #e6a23c;
            border: 1px solid #f5dab1;
        }
        
        .tag-ERROR, .tag-danger {
            background-color: #fef0f0;
            color: #f56c6c;
            border: 1px solid #fbc4c4;
        }
        
        .tag-UNKNOWN, .tag-info {
            background-color: #f4f4f5;
            color: #909399;
            border: 1px solid #e9e9eb;
        }
        
        table {
            width: 100%;
            border-collapse: collapse;
            margin-top: 15px;
            margin-bottom: 15px;
            border-radius: 4px;
            overflow: hidden;
        }
        
        th, td {
            padding: 12px 8px;
            text-align: left;
            border-bottom: 1px solid #ebeef5;
        }
        
        th {
            background-color: #f5f7fa;
            color: #606266;
            font-weight: 600;
        }
        
        tr:hover {
            background-color: #fafafa;
        }
        
        .footer {
            margin-top: 30px;
            text-align: center;
            font-size: 14px;
            color: #909399;
            border-top: 1px solid #ebeef5;
            padding-top: 20px;
        }
        
        .overview-stats {
            display: flex;
            flex-wrap: wrap;
            margin: 20px 0;
            justify-content: space-between;
        }
        
        .stat-item {
            text-align: center;
            padding: 15px;
            border-radius: 4px;
            background-color: #f5f7fa;
            box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
            min-width: 100px;
        }
        
        .stat-card {
            text-align: center;
            padding: 15px;
            border-radius: 8px;
            background-color: #f5f7fa;
            box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
            min-width: 100px;
            margin-bottom: 15px;
            flex: 1;
            margin: 0 10px;
            min-width: 150px;
        }
        
        .stat-value {
            font-size: 24px;
            font-weight: bold;
            color: #409EFF;
        }
        
        .stat-value-sm {
            font-size: 16px;
            font-weight: bold;
            color: #409EFF;
            margin-top: 5px;
        }
        
        .stat-label {
            margin-top: 5px;
            font-size: 14px;
            color: #606266;
        }
        
        .stat-box {
            padding: 10px;
            border-radius: 4px;
            background-color: #f5f7fa;
            margin-bottom: 10px;
        }
        
        .system-info {
            display: flex;
            flex-wrap: wrap;
            margin: 20px 0;
        }
        
        .system-info-item {
            flex: 1;
            min-width: 200px;
            margin-bottom: 10px;
            padding: 8px 12px;
        }
        
        .system-info-label {
            font-weight: bold;
            color: #606266;
        }
        
        .system-info-value {
            color: #409EFF;
        }
        
        .metrics-table {
            margin-top: 15px;
        }
        
        .metrics-nested {
            margin-left: 20px;
            border-left: 3px solid #f0f0f0;
            padding-left: 10px;
        }
        
        .metrics-key {
            font-weight: bold;
            color: #606266;
        }
        
        .expandable-content {
            max-height: 400px;
            overflow: auto;
            transition: max-height 0.3s ease;
        }
        
        .row {
            display: flex;
            flex-wrap: wrap;
            margin-right: -10px;
            margin-left: -10px;
        }
        
        .col-4 {
            flex: 0 0 33.333333%;
            max-width: 33.333333%;
            padding-right: 10px;
            padding-left: 10px;
            box-sizing: border-box;
        }
        
        .col-6 {
            flex: 0 0 50%;
            max-width: 50%;
            padding-right: 10px;
            padding-left: 10px;
            box-sizing: border-box;
        }
        
        .col-12 {
            flex: 0 0 100%;
            max-width: 100%;
            padding-right: 10px;
            padding-left: 10px;
            box-sizing: border-box;
        }
        
        .service-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
            gap: 15px;
            margin-top: 20px;
        }
        
        .service-card {
            background-color: white;
            border-radius: 8px;
            box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.05);
            padding: 15px;
            transition: all 0.3s ease;
            margin-bottom: 0;
            overflow: hidden;
        }
        
        .service-card:hover {
            box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.08);
            transform: translateY(-3px);
        }
        
        .service-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 10px;
            padding-bottom: 10px;
            border-bottom: 1px solid #ebeef5;
        }
        
        .service-name {
            font-weight: bold;
            font-size: 16px;
        }
        
        .metric-item {
            display: flex;
            justify-content: space-between;
            padding: 8px 0;
            border-bottom: 1px solid #f0f0f0;
        }
        
        .metric-item:last-child {
            border-bottom: none;
        }
        
        .metric-label {
            font-weight: 500;
            color: #606266;
        }
        
        .metric-value {
            color: #409EFF;
        }
        
        .memory-usage-card {
            margin-top: 20px;
            padding: 10px;
            background-color: #f5f7fa;
            border-radius: 4px;
        }
        
        .memory-info {
            display: flex;
            justify-content: space-between;
            margin-top: 10px;
            font-size: 14px;
            color: #606266;
        }
        
        .thread-stats {
            display: flex;
            justify-content: space-around;
            margin: 20px 0;
        }
        
        .network-status {
            display: flex;
            flex-wrap: wrap;
            justify-content: space-around;
            margin: 15px 0;
        }
        
        .network-status-item {
            text-align: center;
            padding: 10px;
            border-radius: 4px;
            background-color: #f5f7fa;
            width: 30%;
            margin-bottom: 10px;
        }
        
        .network-status-label {
            font-size: 14px;
            color: #606266;
            margin-bottom: 5px;
        }
        
        .network-status-value {
            font-size: 20px;
        }
        
        .success-icon {
            color: #67c23a;
            font-weight: bold;
        }
        
        .error-icon {
            color: #f56c6c;
            font-weight: bold;
        }
        
        .network-details {
            margin-top: 15px;
            padding: 10px;
            background-color: #f5f7fa;
            border-radius: 4px;
            font-size: 14px;
        }
        
        .network-details div {
            margin-bottom: 5px;
        }
        
        .tabs {
            border: 1px solid #e4e7ed;
            border-radius: 4px;
            margin-bottom: 20px;
            background-color: #fff;
        }
        
        .tab-nav {
            display: flex;
            background-color: #f5f7fa;
            border-bottom: 1px solid #e4e7ed;
        }
        
        .tab-item {
            padding: 10px 15px;
            cursor: pointer;
            border-right: 1px solid #e4e7ed;
            font-size: 14px;
            color: #606266;
        }
        
        .tab-item.active {
            color: #409EFF;
            background-color: #fff;
            border-bottom: 2px solid #409EFF;
            margin-bottom: -1px;
        }
        
        .tab-content {
            padding: 15px;
        }
        
        .system-tabs {
            border: 1px solid #e4e7ed;
            border-radius: 4px;
            margin-bottom: 20px;
            background-color: #fff;
        }
        
        .system-tab-nav {
            display: flex;
            background-color: #f5f7fa;
            border-bottom: 1px solid #e4e7ed;
        }
        
        .system-tab-item {
            padding: 10px 15px;
            cursor: pointer;
            border-right: 1px solid #e4e7ed;
            font-size: 14px;
            color: #606266;
        }
        
        .system-tab-item.active {
            color: #409EFF;
            background-color: #fff;
            border-bottom: 2px solid #409EFF;
            margin-bottom: -1px;
        }
        
        .system-tab-content {
            padding: 15px;
        }
        
        .redis-tabs {
            border: 1px solid #e4e7ed;
            border-radius: 4px;
            margin-bottom: 20px;
            background-color: #fff;
        }
        
        .redis-tab-nav {
            display: flex;
            background-color: #f5f7fa;
            border-bottom: 1px solid #e4e7ed;
        }
        
        .redis-tab-item {
            padding: 10px 15px;
            cursor: pointer;
            border-right: 1px solid #e4e7ed;
            font-size: 14px;
            color: #606266;
        }
        
        .redis-tab-item.active {
            color: #409EFF;
            background-color: #fff;
            border-bottom: 2px solid #409EFF;
            margin-bottom: -1px;
        }
        
        .redis-tab-content {
            padding: 15px;
        }

        .mysql-tabs {
            border: 1px solid #e4e7ed;
            border-radius: 4px;
            margin-bottom: 20px;
            background-color: #fff;
        }
        
        .mysql-tab-nav {
            display: flex;
            background-color: #f5f7fa;
            border-bottom: 1px solid #e4e7ed;
        }
        
        .mysql-tab-item {
            padding: 10px 15px;
            cursor: pointer;
            border-right: 1px solid #e4e7ed;
            font-size: 14px;
            color: #606266;
        }
        
        .mysql-tab-item.active {
            color: #409EFF;
            background-color: #fff;
            border-bottom: 2px solid #409EFF;
            margin-bottom: -1px;
        }
        
        .mysql-tab-content {
            padding: 15px;
        }

        .minio-tabs {
            border: 1px solid #e4e7ed;
            border-radius: 4px;
            margin-bottom: 20px;
            background-color: #fff;
        }
        
        .minio-tab-nav {
            display: flex;
            background-color: #f5f7fa;
            border-bottom: 1px solid #e4e7ed;
        }
        
        .minio-tab-item {
            padding: 10px 15px;
            cursor: pointer;
            border-right: 1px solid #e4e7ed;
            font-size: 14px;
            color: #606266;
        }
        
        .minio-tab-item.active {
            color: #409EFF;
            background-color: #fff;
            border-bottom: 2px solid #409EFF;
            margin-bottom: -1px;
        }
        
        .minio-tab-content {
            padding: 15px;
        }

        .progress-bar {
            height: 6px;
            background-color: #ebeef5;
            border-radius: 100px;
            overflow: hidden;
            margin: 10px 0;
        }
        
        .progress-bar-inner {
            height: 100%;
            border-radius: 100px;
        }

        .redis-info-section {
            margin-bottom: 20px;
            padding: 15px;
            background-color: #f8f9fa;
            border-radius: 4px;
        }
        
        .redis-info-title {
            font-weight: 600;
            margin-bottom: 15px;
            color: #303133;
            font-size: 16px;
            border-bottom: 1px solid #ebeef5;
            padding-bottom: 8px;
        }
        
        .redis-info-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
            gap: 15px;
        }
        
        .redis-info-item {
            background-color: white;
            padding: 10px;
            border-radius: 4px;
            box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
        }
        
        .redis-info-label {
            color: #606266;
            font-size: 14px;
            margin-bottom: 5px;
        }
        
        .redis-info-value {
            color: #409EFF;
            font-weight: 500;
            font-size: 16px;
        }

        .mysql-info-section {
            margin-bottom: 20px;
            padding: 15px;
            background-color: #f8f9fa;
            border-radius: 4px;
        }
        
        .mysql-info-title {
            font-weight: 600;
            margin-bottom: 15px;
            color: #303133;
            font-size: 16px;
            border-bottom: 1px solid #ebeef5;
            padding-bottom: 8px;
        }
        
        .mysql-info-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
            gap: 15px;
        }
        
        .mysql-info-item {
            background-color: white;
            padding: 10px;
            border-radius: 4px;
            box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
        }
        
        .mysql-info-label {
            color: #606266;
            font-size: 14px;
            margin-bottom: 5px;
        }
        
        .mysql-info-value {
            color: #409EFF;
            font-weight: 500;
            font-size: 16px;
        }

        /* MinIO 详细监控样式 */
        .minio-info-section {
            margin-bottom: 20px;
            padding: 15px;
            background-color: #f8f9fa;
            border-radius: 4px;
        }
        
        .minio-info-title {
            font-weight: 600;
            margin-bottom: 15px;
            color: #303133;
            font-size: 16px;
            border-bottom: 1px solid #ebeef5;
            padding-bottom: 8px;
        }
        
        .minio-info-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
            gap: 15px;
        }
        
        .minio-info-item {
            background-color: white;
            padding: 10px;
            border-radius: 4px;
            box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
        }
        
        .minio-info-label {
            color: #606266;
            font-size: 14px;
            margin-bottom: 5px;
        }
        
        .minio-info-value {
            color: #409EFF;
            font-weight: 500;
            font-size: 16px;
        }
        
        .minio-buckets-table {
            width: 100%;
            border-collapse: collapse;
            margin-top: 15px;
        }
        
        .minio-buckets-table th,
        .minio-buckets-table td {
            padding: 12px 8px;
            text-align: left;
            border-bottom: 1px solid #ebeef5;
        }
        
        .minio-buckets-table th {
            background-color: #f5f7fa;
            color: #606266;
            font-weight: 600;
        }
        
        .minio-health-checks {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 15px;
            margin-top: 15px;
        }
        
        .minio-health-item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 15px;
            background-color: white;
            border-radius: 8px;
            box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
        }
        
        .minio-health-label {
            font-weight: 500;
            color: #606266;
        }
        
        /* 网络监控报告新样式 */
        .network-overview-section {
            margin-bottom: 30px;
        }
        
        .network-overview-stats {
            display: flex;
            justify-content: space-around;
            margin: 20px 0;
            flex-wrap: wrap;
            gap: 15px;
        }
        
        .network-stat-card {
            display: flex;
            flex-direction: column;
            align-items: center;
            padding: 20px;
            background-color: #f8f9fa;
            border-radius: 12px;
            min-width: 140px;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
            transition: all 0.3s ease;
        }
        
        .network-stat-card:hover {
            transform: translateY(-2px);
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.12);
        }
        
        .network-stat-icon {
            width: 60px;
            height: 60px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            background-color: #409EFF;
            color: white;
            font-size: 28px;
            margin-bottom: 15px;
        }
        
        .network-stat-icon.success {
            background-color: #67c23a;
        }
        
        .network-stat-icon.warning {
            background-color: #e6a23c;
        }
        
        .network-stat-icon.info {
            background-color: #909399;
        }
        
        .network-icon {
            font-size: 24px;
        }
        
        .network-stat-content {
            text-align: center;
        }
        
        .network-stat-value {
            font-size: 28px;
            font-weight: bold;
            color: #303133;
            margin-bottom: 8px;
        }
        
        .network-stat-label {
            font-size: 14px;
            color: #606266;
            font-weight: 500;
        }
        
        .network-details-section {
            margin-top: 30px;
        }
        
        .network-cards-grid {
            gap: 20px;
            margin-top: 20px;
        }

        .network-cards {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
        }
        
        .network-detail-card {
            width: 95%;
            margin-left: 3%;
            background: white;
            border-radius: 12px;
            box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
            overflow: hidden;
            border: 1px solid #ebeef5;
        }
        
        .network-card-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 20px;
            background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
            border-bottom: 1px solid #ebeef5;
        }
        
        .network-card-title {
            flex: 1;
        }
        
        .network-node-name {
            font-size: 18px;
            font-weight: 600;
            color: #303133;
            margin-bottom: 8px;
        }
        
        .network-tags {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
        }
        
        .network-tag {
            display: inline-block;
            padding: 4px 8px;
            border-radius: 4px;
            font-size: 12px;
            line-height: 1.4;
        }
        
        .network-tag.direct {
            background-color: #f0f9eb;
            color: #67c23a;
            border: 1px solid #c2e7b0;
        }
        
        .network-tag.indirect {
            background-color: #fdf6ec;
            color: #e6a23c;
            border: 1px solid #f5dab1;
        }
        
        .network-status-badge {
            margin-left: 15px;
        }
        
        .network-card-content {
            padding: 20px;
        }
        
        .network-info-section {
            margin-bottom: 20px;
        }
        
        .network-info-item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 10px 0;
            border-bottom: 1px solid #f0f0f0;
        }
        
        .network-info-item:last-child {
            border-bottom: none;
        }
        
        .network-info-label {
            font-weight: 600;
            color: #606266;
            min-width: 100px;
        }
        
        .network-info-value {
            color: #303133;
            font-weight: 500;
            word-break: break-all;
        }
        
        .network-test-results {
            margin-bottom: 15px;
        }
        
        .network-test-item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 15px;
            margin-bottom: 10px;
            background-color: #f8f9fa;
            border-radius: 8px;
            border-left: 4px solid #409EFF;
        }
        
        .network-test-label {
            font-weight: 600;
            color: #606266;
        }
        
        .network-test-result {
            font-weight: 600;
        }
        
        .network-test-result.success {
            color: #67c23a;
        }
        
        .network-test-result.error {
            color: #f56c6c;
        }
        
        .response-time {
            font-weight: 600;
        }
        
        .response-time.success {
            color: #67c23a;
        }
        
        .response-time.warning {
            color: #e6a23c;
        }
        
        .response-time.danger {
            color: #f56c6c;
        }
        
        .network-details-text {
            padding: 15px;
            background-color: #f0f2f5;
            border-radius: 8px;
            border-left: 4px solid #409EFF;
            margin-top: 15px;
        }
        
        .network-details-text p {
            margin: 0;
            color: #606266;
            font-size: 14px;
            line-height: 1.6;
        }

        @media print {
            body {
                background-color: white;
            }
            
            .box-card {
                box-shadow: none;
                border: 1px solid #ebeef5;
            }
            
            .service-card:hover {
                transform: none;
                box-shadow: none;
            }
            
            .network-stat-card:hover {
                transform: none;
                box-shadow: none;
            }
        }

        @media (max-width: 992px) {
            .network-cards-grid {
                grid-template-columns: repeat(2, 1fr);
            }
            
            .service-details-cards {
                grid-template-columns: repeat(2, 1fr);
            }
        }
        
        @media (max-width: 768px) {
            .network-cards-grid {
                grid-template-columns: 1fr;
            }
            
            .network-overview-stats {
                flex-direction: column;
                align-items: center;
            }
            
            .network-stat-card {
                width: 100%;
                max-width: 300px;
            }
            
            .service-details-cards {
                grid-template-columns: 1fr;
            }
        }
    </style>
</head>
<body>
    <div class="container">
        <h2>监控报告</h2>
        
        <div class="box-card">
            <div class="clearfix">
                <span>系统概览</span>
            </div>
            <div style="padding: 20px;">
                <p>生成时间: <span>${generatedTime}</span></p>
                
                <div class="system-info">
                    <div class="system-info-item">
                        <div class="system-info-label">主机名:</div>
                        <div class="system-info-value">${systemInfo.hostName}</div>
                    </div>
                    <div class="system-info-item">
                        <div class="system-info-label">IP地址:</div>
                        <div class="system-info-value">${systemInfo.ip}</div>
                    </div>
                    <div class="system-info-item">
                        <div class="system-info-label">操作系统:</div>
                        <div class="system-info-value">${systemInfo.osName} ${systemInfo.osVersion}</div>
                    </div>
                    <div class="system-info-item">
                        <div class="system-info-label">Java版本:</div>
                        <div class="system-info-value">${systemInfo.javaVersion}</div>
                    </div>
                </div>
                
                <!-- 监控状态统计 -->
                <div class="overview-stats">
                    <div class="stat-card">
                        <div class="stat-value">${#lists.size(results)}</div>
                        <div class="stat-label">监控项总数</div>
                    </div>
                    <div class="stat-card">
                        <div class="stat-value">${normalCount}</div>
                        <div class="stat-label">正常</div>
                    </div>
                    <div class="stat-card">
                        <div class="stat-value">${warningCount}</div>
                        <div class="stat-label">警告</div>
                    </div>
                    <div class="stat-card">
                        <div class="stat-value">${errorCount}</div>
                        <div class="stat-label">错误</div>
                    </div>
                    <div class="stat-card">
                        <div class="stat-value">${unknownCount}</div>
                        <div class="stat-label">未知</div>
                    </div>
                </div>
            </div>
        </div>
        
        <!-- 核心服务监控 -->
        <div class="box-card">
            <div class="clearfix">
                <span>核心服务健康状态</span>
            </div>
            <div style="padding: 20px;">
                <!-- CORE_SERVICES_PLACEHOLDER -->
            </div>
        </div>
        
        <!-- JVM监控专用卡片 -->
        <div class="box-card jvm-card">
            <div class="clearfix">
                <span>JVM监控</span>
            </div>
            <div style="padding: 20px;">
                <div>
                    <!-- JVM_MONITORING_PLACEHOLDER -->
                </div>
            </div>
        </div>
        
        <!-- 系统资源监控专用卡片 -->
        <div class="box-card system-card">
            <div class="clearfix">
                <span>系统资源监控</span>
            </div>
            <div style="padding: 20px;">
                <div>
                    <!-- SYSTEM_MONITORING_PLACEHOLDER -->
                </div>
            </div>
        </div>
        
        <!-- 中间件监控 -->
        <div class="box-card">
            <div class="clearfix">
                <span>其他中间件监控</span>
            </div>
            <div style="padding: 20px;">
                <!-- MIDDLEWARES_PLACEHOLDER -->
            </div>
        </div>
        
        <!-- 网络监控 -->
        <div class="box-card">
            <div class="clearfix">
                <span>网络连通性监控</span>
            </div>
            <div style="padding: 20px;">
                
                <!-- 网络监控详情卡片 -->
                <div class="network-details-section">
                    <h4>网络监控详情</h4>
                    <div class="network-cards-grid">
                        <!-- NETWORKS_PLACEHOLDER -->
                    </div>
                </div>
            </div>
        </div>
        
        <!-- 所有监控项详情 -->
        <div class="box-card">
            <div class="clearfix">
                <span>监控项详情列表</span>
            </div>
            <div style="padding: 20px;">
                <table>
                    <thead>
                        <tr>
                            <th style="width: 25%;">监控项</th>
                            <th style="width: 10%;">状态</th>
                            <th style="width: 17%;">监控时间</th>
                            <th>详情</th>
                        </tr>
                    </thead>
                    <tbody>
                        <!-- RESULTS_TABLE_PLACEHOLDER -->
                    </tbody>
                </table>
            </div>
        </div>
        
        <div class="footer">
            <p>监控工具平台自动生成的报告 | <span>${generatedTime}</span></p>
        </div>
    </div>
    
</body>
</html> 